#ifndef CPPARTICLE_H
#define CPPARTICLE_H

#include <TNamed.h>
#include <TClonesArray.h>
#include "CpTrack.h"

class TLorentzVector;

class CpParticle : public TNamed
{

public:
	enum EParticleType { kMagnetic = 0, kBlood = 1, kLastCutType };

    CpParticle();
    CpParticle(const char* name, const char* title);

	 void SetType(EParticleType t) { fType = t;}
	 EParticleType GetType() { return fType;}
	 
	void SetID(Long64_t id) { fID = id;}
	Long64_t ID() { return fID;}


   void Clear(const Option_t*option="");
   CpTrack *AddTrack(const Int_t &id);
   CpTrack *GetTrack(const Int_t &index) { return (CpTrack*) fTracks.At(index);}
   Long64_t GetNumberOfTracks() { return fNumberOfTracks; }

    virtual void Print(Option_t* option = "") const;
	
private:

	EParticleType  fType;
	Long64_t 		fID;
   Long64_t      fNumberOfTracks;
   TClonesArray  fTracks;

	 ClassDef(CpParticle, 1);
};

#endif // CPPARTICLE_H
